package com.example.rabc.service;

import com.example.rabc.dao.RoleRepository;
import com.example.rabc.entity.Role;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class SystemInitializer implements CommandLineRunner {

    @Autowired
    private RoleRepository roleRepository;

    @Override
    public void run(String... args) throws Exception {
        // 初始化默认角色
        initDefaultRoles();
    }

    private void initDefaultRoles() {
        // 创建ROLE_USER角色（如果不存在）
        if (!roleRepository.findByRoleCode("USER").isPresent()) {
            Role userRole = new Role();
            userRole.setRoleCode("USER");
            userRole.setRoleName("普通用户");
            userRole.setDescription("普通用户角色");
            userRole.setStatus(1);
            roleRepository.save(userRole);
            System.out.println("Created default role: USER");
        }

        // 创建ROLE_ADMIN角色（如果不存在）
        if (!roleRepository.findByRoleCode("ADMIN").isPresent()) {
            Role adminRole = new Role();
            adminRole.setRoleCode("ADMIN");
            adminRole.setRoleName("管理员");
            adminRole.setDescription("管理员角色");
            adminRole.setStatus(1);
            roleRepository.save(adminRole);
            System.out.println("Created default role: ADMIN");
        }
    }
}